Hybrid Automatic Repeat Requests Coding in MIMO Networks

ABSTRACT

A method transmits a block of symbols in a multiple-input multiple-output (MIMO) network including a transmitter having a set of transmit antennas and a receiver having a set of receive antennas. A block of symbols is coded with a first code to generate a first block, which is transmitted and received. If a decoding of the first block is incorrect, then block of symbols is coded with the first code and then a second code different than the first code to generate a second block. The second block is transmitted, received and combined with the first block to recover the block of symbols.

RELATED APPLICATION

This Application claims priority to U.S. Provisional Patent Application 61/021,359, “Space time block coding for HARQ and MIMO transmissions,” file by Orlik et al. on Jan. 16, 2008, and U.S. Provisional Patent Application 61/077,905 “Space time block coding for HARQ and MIMO transmissions,” file by Orlik et al. on Jul. 3, 2008.

FIELD OF THE INVENTION

This invention relates generally to the field of wireless communications, and more particularly to retransmitting data using hybrid automatic repeat requests (HARQ) in multiple-input multiple-output (MIMO) networks.

BACKGROUND OF THE INVENTION

MIMO Networks

In mobile cellular communication networks, the use of multiple-input multiple-output (MIMO) transmission technology is becoming more widespread. The Worldwide Interoperability for Microwave Access (WiMAX) forum, as well as the 3rd Generation Partnership Project (3GPP) has released standard specifications that make use of MIMO to improve transmission capacity and reliability.

MIMO networks increase capacity by transmitting and receiving symbols using multiple antennas concurrently with a technique usually termed spatial multiplexing (SM). A MIMO receiver can use advanced signal processing and properties of the channel to detect and decode the symbols. To improve reliability, the MIMO network can transmit copies of the symbols from multiple antennas in a technique usually called space time coding (STC). The IEEE 802.16 standard “Part 16: Air interface for Broadband Wireless Access Systems,” 802.16, upon which WiMAX is based. WiMAX employs both SM and STC techniques.

In addition to MIMO, the standards specify hybrid automatic repeat requests (HARQ). As in a conventional automatic repeat request (ARQ), a receiver request a retransmission of a message was decoded incorrectly. However, with HARQ, the original corrupted message is retained and combined with the retransmission message to improve the probability of successfully decoding the message and recovering the symbols.

Another problem in MIMO networks is self-interference due to transmitting and receiving with multiple antennas. Self-interference increases as the number of antennas increase. It is also desired to eliminate self interference.

SUMMARY OF THE INVENTION

The embodiments of the invention provides a method for combining hybrid automatic repeat requests (HARQ) with space time coding (STC) in a multiple-input multiple-output (MIMO) network to increase the reliability of spatial multiplexed MIMO transmissions.

In addition, the embodiments of the invention provide space time codes that can by used with higher order MIMO configurations, e.g., four or more transmit and receive antennas, and spatial multiplexing (SM) wherein self-interference among data streams is eliminated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a MIMO transmitter according to embodiments of the invention;

FIG. 2A is a schematic of a MIMI network according to embodiments of the invention;

FIG. 2B is a block diagram of two blocks of symbols according to embodiments of the invention;

FIG. 3 is a timing diagram of conventional HARQ operations in a MIMO network;

FIG. 4 is a timing diagram of HARQ with STC in a MIMO network according to embodiments of the invention; and

FIG. 5 is a timing diagram of HARQ with SICC in a MIMO network according to embodiments of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

MIMO-OFDM with Spatial Multiplexing

Transmitter

FIG. 1 shows a multiple-input multiple-output (MIMO-OFDM) transmitter 310 with two transmit antennas 106. The transmitter includes a source 101 for coding modulated data symbols (S₁, S₂) 111 as a first block. The coding uses a first code, e.g., a forward error-correcting code (FEC), such as a turbo code, a convolutional code, a low-density parity-check (LDPC) code, and the like. The transmitter also includes a demultiplexer (DeMUX) 102, and two OFDM chains 103. Each OFDM chain includes an OFDM modulator that performs an inverse Fast Fourier transform (IFFT) 104 on the respective input symbols S₁ and S₂ and then filters, amplifies and converts the time domain signal to a passband carrier frequency in the RF block 105.

The transmitter also includes a coder 350. The coder is used during HARQ operations to recode the retransmitted symbols as a second block using an additional code that was not used to code the symbols for the first transmission. That is, the coder 350 is enabled only for retransmissions, and the symbols initially transmitted bypass 351 the coder 350.

The transmitter 310 uses spatial multiplexing (SM), wherein the sequence of modulated symbols 111 is transmitted via the two antennas 106. That is, for the two symbols S₁ and S₂, only one channel is required because symbol S₁ is transmitted by the first antenna, and symbol S₂ is transmitted concurrently by the second antenna to double the transmission rate. Generally, the transmission is

$S = {\begin{bmatrix} S_{1} \\ S_{2} \end{bmatrix}.}$

Receiver

A receiver typically needs to have at least as many antennas as the transmitter to enable the detecting and decoding of the symbols transmitted by the two transmit antennas 106 to recover the symbols. Several receiver types are known.

An optimal receiver includes a maximum likelihood detector. Sub-optimal receivers can use minimum mean square error (MMSE) and zero forcing (ZF). The embodiments of the invention can be used in transmitters and receivers with a large number of antennas, and where spatial multiplexing (SM) and hybrid automatic repeat requests (HARQ) are used.

Channel Matrix

FIG. 2A shows a MIMO network with a transmitter 310 and a receiver 320. The transmitters has multiple transmit antennas 201, and the receiver has multiple receive antennas 202, and a wireless channel 210 between the antennas. We first describe the case where SM is combined with HARQ. We represent the MIMO channel for each of the OFDM subcarriers as a matrix H. The matrix H is

${H = \begin{bmatrix} h_{1,1} & h_{1,2} \\ h_{2,1} & h_{2,2} \end{bmatrix}},$

where the elements h_(i,j) are channel coefficients from the j^(th) transmit antenna to the i^(th) receive antenna. The received signal at the two antennas can be expressed in matrix form as

$\begin{bmatrix} r_{1} \\ r_{2} \end{bmatrix} = {{\begin{bmatrix} h_{1,1} & h_{1,2} \\ h_{2,1} & h_{2,2} \end{bmatrix}\begin{matrix} S_{1} \\ S_{2} \end{matrix}} + {\begin{bmatrix} n_{1} \\ n_{2} \end{bmatrix}.}}$

This is equivalent to R=HS+n, where n is an additive white Gaussian noise vector and S is the vector of transmitted signals.

As shown in FIG. 2B for the purpose HARQ operation, the vector S is a vector of symbols rather then individual modulation symbols. The blocks are the modulated wave forms derived from the sequence of input symbols 111. Thus, the vector S is a vector of symbols that represents an entire block (or packet) of modulation symbols that are transmitted consecutively.

FIG. 2B shows two block 221-222 of fifty symbols. Symbols s₁ and s₅₀ are transmitted first, than symbols s₂, and so forth. Then, the entire blocks are decoded to determine whether or not the blocks need to be retransmitted or not.

The components of block

${S = \begin{bmatrix} {S_{1}(k)} \\ {S_{2}(k)} \end{bmatrix}},$

depend on a time index k. However, we omit the time index notation to simplify this description. The subscript indicates which antenna is used in the transmission.

The received signals at each receiver antenna can be represented by expanding the matrix equation to

r ₁ =h _(1,1) s ₁ +h _(1,2) s ₂ +n ₁

r ₂ =h _(2,1) s ₁ +h _(2,2) s ₂ +n ₂.

HARQ

FIG. 3 shows the operation of the conventional HARQ. The transmitter 310 transmits a first block of symbols S⁽¹⁾ 301. The receiver 320 operates on the vector R to detect the received block S⁽¹⁾ 302, which is stored in a memory at the receiver. The receiver also has the channel matrix H, which is used to detect the block S. The receiver can implement decoding schemes, such as MMSE or ZF to reco9ver and estimate of the received signal Ŝ. If the block is decoded correctly and the symbols are recovered, then no further processing or retransmission is required.

If decoding of the received signal is incorrect, that is, the estimate Ŝ is not equal to the vector S, then the HARQ operation starts. The receiver stores the first block 302 of the received signal R, and transmits a retransmission request 303.

In response to the retransmission request 303, the transmitter transmits an exact duplicate of the first block as a second block S⁽²⁾ 304, where the superscript indicates the second transmission attempt. That is, in the conventional HARQ, there is no coder 350, and any retransmissions are identical to the initial transmission.

Thus, the two successive transmissions are S⁽¹⁾ and S⁽²⁾, where S^((1)≡)S⁽²⁾. After reception of the retransmitted signal, the receiver has the two copies of the received signals R⁽¹⁾ and R⁽²⁾. These can be expressed as

$\begin{bmatrix} r_{1}^{(1)} & r_{1}^{(2)} \\ r_{2}^{(1)} & r_{2}^{(2)} \end{bmatrix} = {\begin{bmatrix} {{h_{1,1}s_{1}} + {h_{1,2}s_{2}} + n_{1}^{(1)}} & {{h_{1,1}s_{1}} + {h_{1,2}s_{2}} + n_{1}^{(2)}} \\ {{h_{2,1}s_{1}} + {h_{2,2}s_{2}} + n_{2}^{(1)}} & {{h_{2,1}s_{1}} + {h_{2,2}s_{2}} + n_{2}^{(2)}} \end{bmatrix}.}$

The terms r_(j) ^((i)), represent the signal at the j^(th) antenna due to the i^(th) transmission, and n_(j) ^((i)), is the noise at the j^(th) antenna associated with the i^(th) transmission. It should be noted that n_(j) ^((i)), {j=1, 2, i=1, 2} are all independent identically (i.i.d.) distributed Gaussian with a variance σ².

The copies of the received signals are combined to improve the probability of success for the decoding 306 to recover the symbols. One common way to combine 305 the received signals R⁽¹⁾ and R⁽²⁾ is to average the two vectors to obtain

$R^{\prime} = {\frac{R^{(1)} + R^{(2)}}{2}.}$

It should be noted that the HARQ can be repeated multiple times, and the averaging includes multiple retransmission blocks.

The combining operation 305 reduces the noise variance and power by a factor of two, and improves the decoding 306 to correctly recover the symbols. However, there still remains an interference term for the received signal at each antenna, which can be seen by expressing R′ as

$\begin{bmatrix} r_{1}^{\prime} \\ r_{2}^{\prime} \end{bmatrix} = {\begin{bmatrix} {\left( {{h_{1,1}s_{1}} + {h_{1,2}s_{2}}} \right) + n_{1}^{\prime}} \\ {\left( {{h_{2,1}s_{1}} + {h_{2,2}s_{2}}} \right) + n_{2}^{\prime}} \end{bmatrix}.}$

Self Interference

The terms h_(1,2)s₂ and h_(2,1)s₁ are the interference terms at receive antenna 1 from transmit antenna 2, and receive antenna 2 from transmit antenna 1, respectively.

This type of interference is typically called self interference, because it is due to the transmission of multiple streams from multiple antennas. Thus, the two transmissions reduce the noise power but do not eliminate the self interference. It should be noted that self interference increases as the number of antennas increase. Therefore, the embodiments of the invention, which eliminate self-interference, is important in MIMO transceivers with a larger number of antennas, e.g., four or more.

HARQ with STC

To eliminate self interference, we perform additional coding 350 with a second code that is different than the first code during the retransmission using a second code, different than the first code.

As shown in FIG. 4 for one embodiment, the second code is a space-time code (STC). One STC is the well know Alamouti code, which has the general form

$S = {\begin{bmatrix} S_{1} & {- S_{2}^{*}} \\ S_{2} & S_{1}^{*} \end{bmatrix}.}$

The symbols in the first column are transmitted first by the antennas indicated by the subscripts, followed by the complex conjugate (*) of the symbols and a reversal of the antennas in the next time interval. In this case, the retransmission is encoded in a way that enables the receiver to eliminate the self interference.

The first transmission of the first block 401 is conventional

$S^{(1)} = {\begin{bmatrix} S_{1} \\ S_{2} \end{bmatrix}.}$

If decoding fails, then the receiver stores the received signal R⁽¹⁾ 402, and a retransmission 403 is requested. The transmitter 310 transmits the following coded set of signals 404 as the second block

${S^{(2)} = \begin{bmatrix} {- \left( S_{2} \right)^{*}} \\ \left( S_{1} \right)^{*} \end{bmatrix}},$

which is the result of space-time coding by the coder 350. Thus, the coding that is used for the retransmission is different than the coding that is used for the initial transmission.

At the receiver 320, the matrix R^((1,2)) represents the received signals at both antennas were the first column is due to the transmission of the first block S⁽¹⁾, and the second column in due to the retransmission of the block S⁽²⁾, that is

$R^{({1,2})} = {{{H\left\lbrack {S^{(1)}\mspace{31mu} S^{(2)}} \right\rbrack} + n^{({1,2})}} = {{\begin{bmatrix} h_{1,1} & h_{1,2} \\ h_{2,1} & h_{2,2} \end{bmatrix}\begin{bmatrix} S_{1} & {- \left( S_{2} \right)^{*}} \\ S_{2} & \left( S_{1} \right)^{*} \end{bmatrix}} + {\quad{n^{({1,2})} = {\begin{bmatrix} {{h_{1,1}S_{1}} + {h_{1,2}S_{2}}} & {{- {h_{1,1}\left( S_{2} \right)}^{*}} + {h_{1,2}\left( S_{1} \right)}^{*}} \\ {{h_{2,1}S_{1}} + {h_{2,2}S_{2}}} & {{- {h_{2,1}\left( S_{2} \right)}^{*}} + {h_{2,2}\left( S_{1} \right)}^{*}} \end{bmatrix} + {\begin{bmatrix} n_{1}^{(1)} & n_{1}^{(2)} \\ n_{2}^{(1)} & n_{2}^{(2)} \end{bmatrix}.}}}}}}$

The signals at the receiver can be combined 405 and decoded 406 according to the following equations to obtain

For S₁

h _(1,1)*(h _(1,1) S ₁ +h _(1,2) S ₂ +n ₁ ⁽¹⁾)+h _(1,2)(−h _(1,1)(S ₂)*+h _(1,2)(S ₁)*+n ₁ ⁽²⁾)*

h _(2,1)*(h _(2,1) S ₁ +h _(2,2) S ₂ +n ₂ ⁽¹⁾)+h _(2,2)(−h _(2,1)(S ₂)*+h _(2,2)(S ₁)*+n ₂ ⁽²⁾)*=(|h _(1,1)|² +|h _(1,2)|² +|h _(2,1)|² +|h _(2,2)|²)·S ₁ +n ₁′

For S₂,

h _(1,2)*(h _(1,1) S ₁ +h _(1,2) S ₂ +n ₁ ⁽¹⁾)−h _(1,1)(−h _(1,1)(S ₂)*+h _(1,2)(S ₁)*+n ₁ ⁽²⁾)*

h _(2,2)*(h _(2,1) S ₁ +h _(2,2) S ₂ +n ₂ ⁽¹⁾)−h _(2,1)(−h _(2,1)(S ₂)*+h _(2,2)(S ₁)*+n ₂ ⁽²⁾)*=(|h _(1,1)|² +|h _(1,2)|² +|h _(2,1)|² +|h _(2,2)|²)·S ₂ +n ₂′

where

n ₁ ′=h* _(1.1) n ₁ ⁽¹⁾ +h _(1.2)(n ₁ ⁽²⁾)*+h* _(2.1) n ₂ ⁽¹⁾ +h _(2.2)(n ₂ ⁽²⁾)*,

n ₂ ′=h* _(1.2) n ₁ ⁽¹⁾ −h _(1.1)(n ₁ ⁽²⁾)*+h* _(2.2) n ₂ ⁽¹⁾ +h _(2.1)(n ₂ ⁽²⁾)*.

With this combining scheme, the self inference between antennas is completely eliminated, and the symbols can be recovered. Essentially, if we recode the retransmitted signals and use a slightly more complex combining at the receiver, we eliminate the self interference.

After the combing 405, the receiver attempts to decode 406 the transmitted block of symbols S. Because the combined signal no longer contains any self interference, the probability of correct decoding 406 and recovering the symbols increases.

It should be noted that additional retransmissions are possible, wherein each retransmission is recoded by the coder 350.

HARQ with SICC

Other coding can be used in the coder 350 to eliminate the self interference for a HARQ transmission. Another second code is a self-interference cancellation code (SICC) as shown in FIG. 5. This is similar to the STC coding of the HARQ retransmissions, but is simpler to implement and is based on Hadamard matrices, a well known generalized class of discrete Fourier transform matrices.

We have a 2×2 antenna network, and we denote S=[S₁S₂]^(T) as a vector of signals (block of symbols) transmitted 501 from the two transmit antennas. After reception of the signal R=HS+n 502, and a failure in the decoding, the HARQ process is initiated and a request for a retransmission 503 is sent to the transmitter. The retransmission 504 is coded 350 according to a second code

${S^{(2)} = \begin{bmatrix} S_{1} \\ {- S_{2}} \end{bmatrix}},$

wherein the signal transmitted from the second antenna is simply negated.

At receiver 320, the two received signals are

R ^((1,2)) =H[S ⁽¹⁾ S ⁽²⁾ ]+n ^((1,2)).

Expanding R^((1,2)), we obtain

$R^{({1,2})} = {{{H\left\lbrack {S^{(1)}\mspace{31mu} S^{(2)}} \right\rbrack} + n^{({1,2})}} = {{\begin{bmatrix} h_{1,1} & h_{1,2} \\ h_{2,1} & h_{2,2} \end{bmatrix}\begin{bmatrix} S_{1} & \left( S_{1} \right) \\ S_{2} & \left( {- S_{2}} \right) \end{bmatrix}} + {\quad{n^{({1,2})} = {\begin{bmatrix} {{h_{1,1}S_{1}} + {h_{1,2}S_{2}}} & {{h_{1,1}\left( S_{1} \right)} - {h_{1,2}\left( S_{2} \right)}} \\ {{h_{2,1}S_{1}} - {h_{2,2}S_{2}}} & {{h_{2,1}\left( S_{1} \right)} - {h_{2,2}\left( S_{2} \right)}} \end{bmatrix} + {\begin{bmatrix} n_{1}^{(1)} & n_{1}^{(2)} \\ n_{2}^{(1)} & n_{2}^{(2)} \end{bmatrix}.}}}}}}$

The combining 505 for SICC begins with the multiplication of the received matrix (R^((1,2))) by the 2×2 Hadamard matrix yielding,

$R^{{({1,2})}^{\prime}} = {{R^{({1,2})}\begin{bmatrix} 1 & 1 \\ 1 & {- 1} \end{bmatrix}} = {{2\begin{bmatrix} {h_{11}S_{1}} & {h_{12}S_{2}} \\ {h_{21}S_{1}} & {h_{22}S_{2}} \end{bmatrix}} + {\begin{bmatrix} {n_{1}^{(1)} + n_{1}^{(2)}} & {n_{1}^{(1)} - n_{1}^{(2)}} \\ {n_{2}^{(1)} + n_{2}^{(2)}} & {n_{2}^{(1)} - n_{2}^{(2)}} \end{bmatrix}.}}}$

Thus, the signal component of the matrix R^((1,2))′ contains two columns, were the first column depends only on the signal Si and the second column depends only on the signal S₂. We can combine the signals by multiply the first column of the matrix R^((1,2))′ by the vector [h₁₁*h₂₁*]^(T), and the second column of the matrix R^((1,2))′ by the vector [h₁₂*h₂₂*]^(T). These yields

2h _(1,1) S ₁ h _(1,1)*+2h _(2,1) S ₁ h _(2,1) *+n ₁′=2(|h _(1,1)|² +|h _(2,1)|²)·S ₁ +n ₁′

2h _(1,2) S ₂ h _(1,2)*+2h _(2,2) S ₂ h _(2,2) *+n ₂′=2(|h _(1,2)|² +|h _(2,2)|²)·S ₂ +n ₂′

where

n ₁ ′=h _(1,1) *n _(1,1) ′+h _(2,1) *n _(2,1)′,

n ₂ ′=h _(1,2) *n _(1,2) ′+h _(2,2) *n _(2,2)′, and

$\left\lbrack {\begin{matrix} n_{1,1}^{\prime} & n_{1,2}^{\prime} \\ n_{2,1}^{\prime} & n_{2,2}^{\prime} \end{matrix}\ldots} \right\rbrack = {\begin{bmatrix} {n_{1}^{(1)} + n_{1}^{(2)}} & {n_{1}^{(1)} - n_{1}^{(2)}} \\ {n_{2}^{(1)} + n_{2}^{(2)}} & {n_{2}^{(1)} - n_{2}^{(2)}} \end{bmatrix}.}$

Thus, the SICC combining yields signals where the self interference has been eliminated, and thus the probability of correct decoding 506 improves over conventional HARQ with SM.

If after the initial HARQ retransmission S⁽²⁾, the receiver still detects an error in the decoding on the signals S_(1,) and S₂′ then an additional retransmission can be requested. Denoting S^((j)) as the j^(th) HARQ transmission, at the receiver, we have

r ^((1,2, . . . )) =H[S ⁽¹⁾ S ⁽²⁾ S ⁽³⁾ S ⁽⁴⁾ . . . ]+n ^((1,2 . . . )).

By same combining scheme for SICC, we process the signals arriving at each antenna with a repeated Hadamard matrix

${r^{({1,2,\ldots})}\left\lbrack {\begin{matrix} 1 & 1 & 1 & 1 \\ 1 & {- 1} & 1 & {- 1} \end{matrix}\ldots} \right\rbrack},$

where superscripts represent instances of receiving the second block, and

2h _(1,1) S ₁ h _(1,1)*+2h _(2,1) S ₁ h _(2,1)*+2h _(1,1) S ₁ h _(1,1)*+2h _(2,1) S ₁ h _(2,1) *+ . . . +n ₁′=2(|h _(1,1)|² +|h _(2,1)|² +|h _(1,1)|² +|h _(2,1)|²+ . . . )·S ₁ +n ₁′

2h _(1,2) S ₂ h _(1,2)*+2h _(2,2) S ₂ h _(2,2)*+2h _(1,2) S ₂ h _(1,2)*+2h _(2,2) S ₂ h _(2,2) *+ . . . +n ₂′=2(|h _(1,2)|² +|h _(2,2)|² +|h _(1,2)|² +|h _(2,2)|²+ . . . )·S ₂ +n ₂′

where

${n_{1}^{\prime} = {{h_{1.1}^{*}n_{1.1}^{\prime}} + {h_{2.1}^{*}n_{2.1}^{\prime}} + \ldots}}\mspace{14mu},{n_{2}^{\prime} = {{h_{1.2}^{*}n_{1.2}^{\prime}} + {h_{2.2}^{*}n_{2.2}^{\prime}} + {\ldots \mspace{14mu}.}}},{\left\lbrack {\begin{matrix} n_{1,1}^{\prime} & n_{1,2}^{\prime} \\ n_{2,1}^{\prime} & n_{2,2}^{\prime} \end{matrix}\ldots} \right\rbrack = {\left\lbrack {\begin{matrix} {n_{1}^{(1)} + n_{1}^{(2)}} & {n_{1}^{(1)} - n_{1}^{(2)}} \\ {n_{2}^{(1)} + n_{2}^{(2)}} & {n_{2}^{(1)} - n_{2}^{(2)}} \end{matrix}\ldots} \right\rbrack.}}$

Coding for Large Antenna Configurations in MIMO Networks

By combining the SICC and STC schemes on the initial transmission, we can achieve new MIMO codes that eliminate self interference for transceivers with a large number of antennas. In the following, we assume four transmit antennas and four receive antennas. However, it should be understood that the number of transmit and receive antennas can be smaller or larger by altering the matrices described below accordingly.

We process on a per modulated symbol, rather then on the entire signal for a block of symbols. That is, the transmitted signals S=[S₁ S₂ S₃ S₄]^(T) represents a vector of individual symbols, rather then a block of symbols transmitted by each antenna as described above. The transpose operator is T. Also, we assume that the receiver has the channel matrix H, e.g., for four transmit antennas, and four receive antennas:

$H = {\begin{bmatrix} h_{1,1} & h_{1,2} & h_{1,3} & h_{1,4} \\ h_{2,1} & h_{2,2} & h_{2,3} & h_{2,4} \\ h_{3,1} & h_{3,2} & h_{3,3} & h_{4,4} \\ h_{4,1} & h_{4,2} & h_{4,3} & h_{3,4} \end{bmatrix} \cdot}$

During the transmission of each symbol, we use the STC coding and the SICC coding to obtains the following matrix:

$S = {\begin{bmatrix} S_{1} & {- S_{2}^{*}} & S_{1} & {- S_{2}^{*}} \\ S_{2} & S_{1}^{*} & S_{2} & S_{1}^{*} \\ S_{3} & {- S_{4}^{*}} & {- S_{3}} & S_{4}^{*} \\ S_{4} & S_{3}^{*} & {- S_{4}} & {- S_{3}^{*}} \end{bmatrix} \cdot}$

Here each column of the matrix S represents the symbols transmitted at each transmission interval, and the subscripts index the set of antennas. The structure of the first two columns of the matrix S can be seen to be an “Alamouti type” code on the symbols S₁ and S₂ transmitted by antennas 1 and 2, while a second Alamouti type code on symbols S₃ and S₄ transmitted by antennas 3 and 4. The next two columns repeat the Alamouti code. However, the symbols on antennas 3 and 4 are just negated as in the SICC code described above.

If the encoding is done on an individual symbol basis, rather then a block basis as described above, then the transmitter sends the four columns of the matrix, S, in as a stream. That is all four columns are sent sequentially before feedback from the transmitter is expected. Essentially, the matrix S represents a space time code that is used without the HARQ protocol.

Additionally, the receiver waits until all four columns are received before attempting to detect and decode the vector S=[S₁,S₂,S₃, S₄]^(T),

where T is the transpose operator.

After all four columns of the matrix S have been transmitted, the received signal is

${r = {{{HS} + n} = {{\begin{bmatrix} h_{1,1} & h_{1,2} & h_{1,3} & h_{1,4} \\ h_{2,1} & h_{2,2} & h_{2,3} & h_{2,4} \\ h_{3,1} & h_{3,2} & h_{3,3} & h_{3,4} \\ h_{4,1} & h_{4,2} & h_{4,3} & h_{4,4} \end{bmatrix}\begin{bmatrix} S_{1} & {- S_{2}^{*}} & S_{1} & {- S_{2}^{*}} \\ S_{2} & S_{1}^{*} & S_{2} & S_{1}^{*} \\ S_{3} & {- S_{4}^{*}} & {- S_{3}} & S_{4}^{*} \\ S_{4} & S_{3}^{*} & {- S_{4}} & {- S_{3}^{*}} \end{bmatrix}} + n}}},$

where noise n is

${n = {{{\begin{bmatrix} n_{1,1} & n_{1,2} & n_{1,3} & n_{1,4} \\ n_{2,1} & n_{2,2} & n_{2,3} & n_{2,4} \\ n_{3,1} & n_{3,2} & n_{3,3} & n_{3,4} \\ n_{4,1} & n_{4,2} & n_{4,3} & n_{4,4} \end{bmatrix} \cdot {If}}\mspace{14mu} {we}\mspace{14mu} {set}{\mspace{11mu} \;}r} = \begin{bmatrix} r_{1,1} & r_{1,2} & r_{1,3} & r_{1,4} \\ r_{2,1} & r_{2,2} & r_{2,3} & r_{2,4} \\ r_{3,1} & r_{3,2} & r_{3,3} & r_{3,4} \\ r_{4,1} & r_{4,2} & r_{4,3} & r_{4,4} \end{bmatrix}}},$

then the combining of the symbols from each antenna can be expressed for the first symbol S₁,

${{\begin{bmatrix} r_{1,1} & r_{1,2}^{*} & r_{1,3} & r_{1,4}^{*} \end{bmatrix}\begin{bmatrix} h_{1,1}^{*} \\ h_{1,2} \\ h_{1,1}^{*} \\ h_{1,2} \end{bmatrix}} + {\begin{bmatrix} r_{2,1} & r_{2,2}^{*} & r_{2,3} & r_{2,4}^{*} \end{bmatrix}\begin{bmatrix} h_{2,1}^{*} \\ h_{2,2} \\ h_{2,1}^{*} \\ h_{2,2} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {h_{1,2}}^{2} + {h_{2,1}}^{2} + {h_{2,2}}^{2}} \right)S_{1}} + n_{1}^{\prime}}$

for the second symbol S₂,

${{\begin{bmatrix} r_{1,1} & r_{1,2}^{*} & r_{1,3} & r_{1,4}^{*} \end{bmatrix}\begin{bmatrix} h_{1,2}^{*} \\ {- h_{1,1}} \\ h_{1,2}^{*} \\ {- h_{1,1}} \end{bmatrix}} + {\begin{bmatrix} r_{2,1} & r_{2,2}^{*} & r_{2,3} & r_{2,4}^{*} \end{bmatrix}\begin{bmatrix} h_{2,2}^{*} \\ {- h_{2,1}} \\ h_{2,2}^{*} \\ {- h_{2,1}} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {{h_{1,2}{^{2} + }h_{2,1}{^{2} + }h_{2,2}}}^{2}} \right)S_{2}} + n_{2}^{\prime}}$

for the third symbol S₃,

${{\begin{bmatrix} r_{3,1} & r_{3,2}^{*} & r_{3,3} & r_{3,4}^{*} \end{bmatrix}\begin{bmatrix} h_{3,3}^{*} \\ h_{3,4} \\ {- h_{3,3}^{*}} \\ {- h_{3,4}} \end{bmatrix}} + {\begin{bmatrix} r_{4,1} & r_{4,2}^{*} & r_{4,3} & r_{4,4}^{*} \end{bmatrix}\begin{bmatrix} h_{4,3}^{*} \\ h_{4,4} \\ {- h_{4,3}^{*}} \\ {- h_{4,4}} \end{bmatrix}}} = {{2\left( {{h_{3,3}}^{2} + {h_{3,4}}^{2} + {h_{4,3}}^{2} + {h_{4,4}}^{2}} \right)S_{3}} + n_{3}^{\prime}}$

and for the fourth symbol S₄,

${{\begin{bmatrix} r_{3,1} & r_{3,2}^{*} & r_{3,3} & r_{3,4}^{*} \end{bmatrix}\begin{bmatrix} h_{3,4}^{*} \\ h_{3,3} \\ {- h_{3,4}^{*}} \\ {- h_{3,3}} \end{bmatrix}} + {\begin{bmatrix} r_{4,1} & r_{4,2}^{*} & r_{4,3} & r_{4,4}^{*} \end{bmatrix}\begin{bmatrix} h_{4,4}^{*} \\ h_{4,3} \\ h_{4,4}^{*} \\ h_{4,3} \end{bmatrix}}} = {{2\left( {{h_{3,3}}^{2} + {h_{3,4}}^{2} + {h_{4,3}}^{2} + {h_{4,4}}^{2}} \right)S_{4}} + {n_{4}^{\prime}.}}$

The combining yields four symbols that contain no self-interference terms, and thus simple detection schemes can be applied to estimate the transmitted symbols.

For 4×4 STC+SICC, with Hadamard and Alamouti coding,

${H = \begin{bmatrix} h_{1,1} & h_{1,2} & h_{1,3} & h_{1,4} \\ h_{2,1} & h_{2,2} & h_{2,3} & h_{2,4} \\ h_{3,1} & h_{3,2} & h_{3,3} & h_{3,4} \\ h_{4,1} & h_{4,2} & h_{4,3} & h_{4,4} \end{bmatrix}},$

four transmit antennas, and four receive antennas.

For SICC the 2×2 STC 4 grouping case, with a diversity order 4+4+4+4, and a multiplex rate 1,

$S = {\left\lbrack \begin{matrix} S_{1} & {- S_{2}^{*}} & S_{5} & {- S_{6}^{*}} \\ S_{2} & S_{1}^{*} & S_{7} & {- S_{8}^{*}} \\ S_{3} & {- S_{4}^{*}} & S_{6} & S_{5}^{*} \\ S_{4} & S_{3}^{*} & S_{8} & S_{7}^{*} \end{matrix} \middle| \begin{matrix} S_{1} & {- S_{2}^{*}} & S_{5} & {- S_{6}^{*}} \\ S_{2} & S_{1}^{*} & {- S_{7}} & S_{8}^{*} \\ {- S_{3}} & S_{4}^{*} & S_{6} & S_{5}^{*} \\ {- S_{4}} & {- S_{3}^{*}} & {- S_{8}} & {- S_{7}^{*}} \end{matrix} \right\rbrack \cdot}$

At the receiver, the received signal is

${r = {{{HS} + n} = {{\begin{bmatrix} h_{1,1} & h_{1,2} & h_{1,3} & h_{1,4} \\ h_{2,1} & h_{2,2} & h_{2,3} & h_{2,4} \\ h_{3,1} & h_{3,2} & h_{3,3} & h_{3,4} \\ h_{4,1} & h_{4,2} & h_{4,3} & h_{4,4} \end{bmatrix}\left\lbrack \left. \begin{matrix} S_{1} & {- S_{2}^{*}} & S_{5} & {- S_{6}^{*}} \\ S_{2} & S_{1}^{*} & S_{7} & {- S_{8}^{*}} \\ S_{3} & {- S_{4}^{*}} & S_{6} & S_{5}^{*} \\ S_{4} & S_{3}^{*} & S_{8} & S_{7}^{*} \end{matrix} \middle| \begin{matrix} S_{1} & {- S_{2}^{*}} & S_{5} & {- S_{6}^{*}} \\ S_{2} & S_{1}^{*} & {- S_{7}} & S_{8}^{*} \\ {- S_{3}} & S_{4}^{*} & S_{6} & S_{5}^{*} \\ {- S_{4}} & {- S_{3}^{*}} & {- S_{8}} & {- S_{7}^{*}} \end{matrix} \right. \right\rbrack} + n}}},{where}$ $n = {\left\lbrack {\begin{matrix} n_{1,1} & n_{1,2} & n_{1,3} & n_{1,4} \\ n_{2,1} & n_{2,2} & n_{2,3} & n_{2,4} \\ n_{3,1} & n_{3,2} & n_{3,3} & n_{3,4} \\ n_{4,1} & n_{4,2} & n_{4,3} & n_{4,4} \end{matrix}\begin{matrix} n_{1,5} & n_{1,6} & n_{1,7} & n_{1,8} \\ n_{2,5} & n_{2,6} & n_{2,7} & n_{2,8} \\ n_{3,5} & n_{3,6} & n_{3,7} & n_{3,8} \\ n_{4,5} & n_{4,6} & n_{4,7} & n_{4,8} \end{matrix}} \right\rbrack \cdot}$

This decodes as

${r = {\left\lbrack {\begin{matrix} r_{1,1} & r_{1,2} & r_{1,3} & r_{1,4} \\ r_{2,1} & r_{2,2} & r_{2,3} & r_{2,4} \\ r_{3,1} & r_{3,2} & r_{3,3} & r_{3,4} \\ r_{4,1} & r_{4,2} & r_{4,3} & r_{4,4} \end{matrix}\begin{matrix} r_{1,5} & r_{1,6} & r_{1,7} & r_{1,8} \\ r_{2,5} & r_{2,6} & r_{2,7} & r_{2,8} \\ r_{3,5} & r_{3,6} & r_{3,7} & r_{3,8} \\ r_{4,5} & r_{4,6} & r_{4,7} & r_{4,8} \end{matrix}} \right\rbrack \mspace{14mu} {for}\mspace{14mu} S_{1}}},{{{\begin{bmatrix} r_{1,1} & r_{1,2}^{*} & r_{1,5} & r_{1,6}^{*} \end{bmatrix}\begin{bmatrix} h_{1,1}^{*} \\ h_{1,2} \\ h_{1,1}^{*} \\ h_{1,2} \end{bmatrix}} + {\begin{bmatrix} r_{2,1} & r_{2,2}^{*} & r_{2,5} & r_{2,6}^{*} \end{bmatrix}\begin{bmatrix} h_{2,1}^{*} \\ h_{2,2} \\ h_{2,1}^{*} \\ h_{2,2} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {h_{1,2}}^{2} + {h_{2,1}}^{2} + {h_{2,2}}^{2}} \right)S_{1}} + {n_{1}^{\prime}{for}\mspace{14mu} S_{2}}}},{{{\begin{bmatrix} r_{1,1} & r_{1,2}^{*} & r_{1,5} & r_{1,6}^{*} \end{bmatrix}\begin{bmatrix} h_{1,2}^{*} \\ {- h_{1,1}} \\ h_{1,2}^{*} \\ {- h_{1,1}} \end{bmatrix}} + {\begin{bmatrix} r_{2,1} & r_{2,2}^{*} & r_{2,5} & r_{2,6}^{*} \end{bmatrix}\begin{bmatrix} h_{2,2}^{*} \\ {- h_{2,1}} \\ h_{2,2}^{*} \\ {- h_{2,1}} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {h_{1,2}}^{2} + {h_{2,1}}^{2} + {h_{2,2}}^{2}} \right)S_{2}} + {n_{2}^{\prime}{{for}\mspace{14mu} S_{3}}}}},{{{\begin{bmatrix} r_{3,1} & r_{3,2}^{*} & r_{3,5} & r_{3,6}^{*} \end{bmatrix}\begin{bmatrix} h_{3,3}^{*} \\ h_{3,4} \\ {- h_{3,3}^{*}} \\ {- h_{3,4}} \end{bmatrix}} + {\begin{bmatrix} r_{4,1} & r_{4,2}^{*} & r_{4,5} & r_{4,6}^{*} \end{bmatrix}\begin{bmatrix} h_{4,3}^{*} \\ h_{4,4} \\ {- h_{4,3}^{*}} \\ {- h_{4,4}} \end{bmatrix}}} = {{2\left( {{h_{3,3}}^{2} + {h_{3,4}}^{2} + {h_{4,3}}^{2} + {h_{4,4}}^{2}} \right)S_{3}} + {n_{3}^{\prime}{{for}\mspace{14mu} S_{4}}}}},{{{\begin{bmatrix} r_{3,1} & r_{3,2}^{*} & r_{3,5} & r_{3,6}^{*} \end{bmatrix}\begin{bmatrix} h_{3,4}^{*} \\ {- h_{3,3}} \\ {- h_{3,4}^{*}} \\ h_{3,3} \end{bmatrix}} + {\begin{bmatrix} r_{4,1} & r_{4,2}^{*} & r_{4,5} & r_{4,6}^{*} \end{bmatrix}\begin{bmatrix} h_{4,4}^{*} \\ {- h_{4,3}} \\ {- h_{4,4}^{*}} \\ h_{4,3} \end{bmatrix}}} = {{2\left( {{h_{3,3}}^{2} + {h_{3,4}}^{2} + {h_{4,3}}^{2} + {h_{4,4}}^{2}} \right)S_{4}} + {n_{4}^{\prime}{{for}\mspace{14mu} S_{5}}}}},{{{\begin{bmatrix} r_{1,3} & r_{1,4}^{*} & r_{1,7} & r_{1,8}^{*} \end{bmatrix}\begin{bmatrix} h_{1,1}^{*} \\ h_{1,3} \\ h_{1,1}^{*} \\ h_{1,3} \end{bmatrix}} + {\begin{bmatrix} r_{3,3} & r_{3,4}^{*} & r_{3,7} & r_{3,8}^{*} \end{bmatrix}\begin{bmatrix} h_{3,1}^{*} \\ h_{3,3} \\ h_{3,1}^{*} \\ h_{3,3} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {h_{1,3}}^{2} + {h_{3,1}}^{2} + {h_{3,3}}^{2}} \right)S_{5}} + {n_{5}^{\prime}{{for}\mspace{14mu} S_{6}}}}},{{{\begin{bmatrix} r_{1,3} & r_{1,4}^{*} & r_{1,7} & r_{1,8}^{*} \end{bmatrix}\begin{bmatrix} h_{1,3}^{*} \\ {- h_{1,1}} \\ h_{1,3}^{*} \\ {- h_{1,1}} \end{bmatrix}} + {\begin{bmatrix} r_{3,3} & r_{3,4}^{*} & r_{3,7} & r_{3,8}^{*} \end{bmatrix}\begin{bmatrix} h_{3,3}^{*} \\ {- h_{3,1}} \\ h_{3,3}^{*} \\ {- h_{3,1}} \end{bmatrix}}} = {{2\left( {{h_{1,1}}^{2} + {h_{1,3}}^{2} + {h_{3,1}}^{2} + {h_{3,3}}^{2}} \right)S_{6}} + {n_{6}^{\prime}{{for}\mspace{14mu} S_{7}}}}},{{{\begin{bmatrix} r_{2,3} & r_{2,4}^{*} & r_{2,7} & r_{2,8}^{*} \end{bmatrix}\begin{bmatrix} h_{2,2}^{*} \\ h_{2,4} \\ {- h_{2,2}^{*}} \\ {- h_{2,4}} \end{bmatrix}} + {\begin{bmatrix} r_{4,3} & r_{4,4}^{*} & r_{4,7} & r_{4,8}^{*} \end{bmatrix}\begin{bmatrix} h_{4,2}^{*} \\ h_{4,4} \\ {- h_{4,2}^{*}} \\ {- h_{4,4}} \end{bmatrix}}} = {{2\left( {{h_{2,2}}^{2} + {h_{2,4}}^{2} + {h_{4,2}}^{2} + {h_{4,4}}^{2}} \right)S_{7}} + {n_{7}^{\prime}{for}\mspace{14mu} S_{8}}}},{{{\left\lbrack \begin{matrix} r_{2,3} & r_{2,4}^{*} & r_{2,7} & r_{2,8}^{*} \end{matrix} \right\rbrack\left\lbrack \begin{matrix} h_{2,4}^{*} \\ {- h_{2,2}} \\ {- h_{2,4}^{*}} \\ h_{2,2} \end{matrix} \right\rbrack} + {{\left\lbrack \begin{matrix} r_{4,3} & r_{4,4}^{*} & r_{4,7} & r_{4,8}^{*} \end{matrix} \right\rbrack\left\lbrack \begin{matrix} h_{4,4}^{*} \\ {- h_{4,2}} \\ {- h_{4,4}^{*}} \\ h_{4,2} \end{matrix} \right\rbrack} \cdot}} = {{2\left( {{h_{2,2}}^{2} + {h_{2,4}}^{2} + {h_{4,2}}^{2} + {h_{4,4}}^{2}} \right)S_{8}} + n_{8}^{\prime}}}$

It is to be understood that various other adaptations and modifications can be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention. 

1. A method for transmitting a block of symbols in a multiple-input multiple-output (MIMO) network including a transmitter having a set of transmit antennas and a receiver having a set of receive antennas, comprising the steps of: coding, in the transmitter, a block of symbols with a first code to generate a first block; transmitting the first block; receiving, in the receiver, the first block; decoding, after the receiving, the first block, and if the decoding is incorrect performing the step of: coding, in the transmitter, the block of symbols with the first code and then a second code different than the first code to generate a second block; transmitting the second block; receiving, in the receiver, the second block; and combining the first block and the second block to recover the block of symbols.
 2. The method of claim 1, wherein the first code is a forward-error correcting code and the second code is a space-time code (STC).
 3. The method of claim 1, wherein the first code is a forward-error correcting code and the second code is a self-interference cancellation code (SICC).
 4. The method of claim 1, wherein the transmitting and receiving uses spatial multiplexing.
 5. The method of claim 2, in which the STC for the second block S is ${S = \begin{bmatrix} S_{1} & {- S_{2}^{*}} \\ S_{2} & S_{1}^{*} \end{bmatrix}},$ where subscripts indicate the transmit antennas, and S represents the symbols transmitted in a column order, and * represents a complex conjugate.
 6. The method of claim 1, wherein the receiver includes a maximum likelihood detector.
 7. The method of claim 1, wherein the receiver uses a minimum mean square error and zero forcing.
 8. The method of claim 1, wherein the combining eliminates self-interference.
 9. The method of claim 5, in which the combining is according to the following equations to obtain: For S₁ h _(1,1)*(h _(1,1) S ₁ +h _(1,2) S ₂ +n ₁ ⁽¹⁾)+h _(1,2)(−h _(1,1)(S ₂)*+h _(1,2)(S ₁)*+n ₁ ⁽²⁾)* h _(2,1)*(h _(2,1) S ₁ +h _(2,2) S ₂ +n ₂ ⁽¹⁾)+h _(2,2)(−h _(2,1)(S ₂)*+h _(2,2)(S ₁)*+n ₂ ⁽²⁾)*=(|h _(1,1)|² +|h _(1,2)|² +|h _(2,1)|² +|h _(2,2)|²)·S ₁ +n ₁′ For S₂, h _(1,2)*(h _(1,1) S ₁ +h _(1,2) S ₂ +n ₁ ⁽¹⁾)−h _(1,1)(−h _(1,1)(S ₂)*+h _(1,2)(S ₁)*+n ₁ ⁽²⁾)* h _(2,2)*(h _(2,1) S ₁ +h _(2,2) S ₂ +n ₂ ⁽¹⁾)−h _(2,1)(−h _(2,1)(S ₂)*+h _(2,2)(S ₁)*+n ₂ ⁽²⁾)*=(|h _(1,1)|² +|h _(1,2)|² +|h _(2,1)|² +|h _(2,2)|²)·S ₂ +n ₂′ where elements h_(i,j) are channel coefficients from a j^(th) transmit antenna to a i^(th) receive antenna, and n is an additive white Gaussian noise vector expressed as n ₁ ′=h* _(1.1) n ₁ ⁽¹⁾ +h _(1.2)(n ₁ ⁽²⁾)*+h* _(2.1) n ₂ ⁽¹⁾ +h _(2.2)(n ₂ ⁽²⁾)*, n ₂ ′=h* _(1.2) n ₁ ⁽¹⁾ −h _(1.1)(n ₁ ⁽²⁾)*+h* _(2.2) n ₂ ⁽¹⁾ +h _(2.1)(n ₂ ⁽²⁾)*.
 10. The method of claim 3, wherein the SICC is based on Hadamard matrices.
 11. The method of claim 10, wherein the Hadamard matrices for the received second block are ${r^{({1,2,\ldots})}\left\lbrack {\begin{matrix} 1 & 1 & 1 & 1 \\ 1 & {- 1} & 1 & {- 1} \end{matrix}\ldots} \right\rbrack},$ where superscripts represent instances of receiving the second block, and 2h _(1,1) S ₁ h _(1,1)*+2h _(2,1) S ₁ h _(2,1)*+2h _(1,1) S ₁ h _(1,1)*+2h _(2,1) S ₁ h _(2,1) *+ . . . +n ₁′=2(|h _(1,1)|² +|h _(2,1)|² +|h _(1,1)|² +|h _(2,1)|²+ . . . )·S ₁ +n ₁′ 2h _(1,2) S ₂ h _(1,2)*+2h _(2,2) S ₂ h _(2,2)*+2h _(1,2) S ₂ h _(1,2)*+2h _(2,2) S ₂ h _(2,2) *+ . . . +n ₂′=2(|h _(1,2)|² +|h _(2,2)|² +|h _(1,2)|² +|h _(2,2)|²+ . . . )·S ₂ +n ₂′ where subscripts i,j indicate the receive and transmit antennas respectively, S indicates the symbols, h represents channel coefficients, and noise is expressed as ${n_{1}^{\prime} = {{h_{1.1}^{*}n_{1.1}^{\prime}} + {h_{2.1}^{*}n_{2.1}^{\prime}} + \ldots}}\mspace{14mu},{n_{2}^{\prime} = {{h_{1.2}^{*}n_{1.2}^{\prime}} + {h_{2.2}^{*}n_{2.2}^{\prime}} + {\ldots \mspace{14mu}.}}},{\left\lbrack {\begin{matrix} n_{1,1}^{\prime} & n_{1,2}^{\prime} \\ n_{2,1}^{\prime} & n_{2,2}^{\prime} \end{matrix}\ldots} \right\rbrack = {\left\lbrack {\begin{matrix} n_{1}^{(1)} & {+ n_{1}^{(2)}} & n_{1}^{(1)} & {- n_{1}^{(2)}} \\ n_{2}^{(1)} & {+ n_{2}^{(2)}} & n_{2}^{(1)} & {- n_{2}^{(2)}} \end{matrix}\ldots} \right\rbrack.}}$ 